<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html">

    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">

            <ui:define name="bar">
                <h:form id="barForm">
                </h:form>
            </ui:define>

            
            <ui:define name="dialogs">
                <h:form id="dialogoForm">
                    <p:dialog id="dialogoNuevoCliente" modal="true" widgetVar="dialogoNuevoCliente"  header="#{messages.NuevoCliente}">
                        <p:panel styleClass="noMargin noPadding noBorder" id="dialogoNuevoClientePanel">
                            <p:panelGrid columns="2" styleClass="noBorder" id="tipoClientePanelGrid">
                                <p:outputLabel for="selectTipoCliente" value="#{messages.TipoCliente}"></p:outputLabel>
                                <p:selectOneMenu  converter="#{tipoClienteConverter}" id="selectTipoCliente" value="#{nuevoClienteBean.nuevoCliente.tipoCliente}" label="#{messages.TipoCliente}">
                                    <f:selectItem itemLabel="#{messages.SeleccionaTipoCliente}" itemValue="" />  
                                    <f:selectItems value="#{resourcesBean.tiposCliente}" var="tipoCliente" itemLabel="#{tipoCliente.descripcion}" itemValue="#{tipoCliente}"></f:selectItems>
                                    <p:ajax event="change" update="panelDatosNuevosClienteParticular panelDatosNuevosClienteOtro"></p:ajax>
                                </p:selectOneMenu>
                            </p:panelGrid>
                            <p:panel styleClass="noMargin noPadding noBorder" id="panelDatosNuevosClienteParticular">
                                <p:panelGrid  rendered="#{nuevoClienteBean.nuevoCliente.tipoCliente!=null and nuevoClienteBean.nuevoCliente.tipoCliente.idTipoCliente==2}" columns="2">
                                    <p:outputLabel for="inputNombreClienteParticular" value="#{messages.NombreYApellidos}"></p:outputLabel>
                                    <p:inputText id="inputNombreClienteParticular" value="#{nuevoClienteBean.nuevoCliente.nombre}"></p:inputText>

                                    <p:outputLabel for="inputEmailClienteParticular" value="#{messages.Email}"></p:outputLabel>
                                    <p:inputText id="inputEmailClienteParticular" value="#{nuevoClienteBean.nuevoCliente.email}">
                                        <f:validator  binding="#{emailValidator}"></f:validator>
                                        <p:ajax event="change" update=":datosCajeroForm:ticketGrowl" />
                                    </p:inputText>

                                    <p:outputLabel for="inputDNIClienteParticular" value="#{messages.DNI}"></p:outputLabel>
                                    <p:inputText id="inputDNIClienteParticular" value="#{nuevoClienteBean.nuevoCliente.nif}"></p:inputText>

                                    <p:outputLabel for="inputMovilClienteParticular" value="#{messages.Movil}"></p:outputLabel>
                                    <p:inputText id="inputMovilClienteParticular" value="#{nuevoClienteBean.nuevoCliente.movil}"></p:inputText>

                                    <p:outputLabel for="inputTelefonoClienteParticular" value="#{messages.Telefono}"></p:outputLabel>
                                    <p:inputText id="inputTelefonoClienteParticular" value="#{nuevoClienteBean.nuevoCliente.telefono}"></p:inputText>

                                    <p:outputLabel for="selectPaisClienteParticular" value="#{messages.Pais}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{paisConverter}" id="selectPaisClienteParticular" value="#{nuevoClienteBean.nuevoCliente.pais}" label="#{messages.Pais}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaPais}" itemValue="" />  
                                        <f:selectItem itemLabel="#{resourcesBean.spain.descripcion}"  itemValue="#{resourcesBean.spain}" />  
                                        <f:selectItems value="#{resourcesBean.paises}" var="pais" itemLabel="#{pais.descripcion}" itemValue="#{pais}"></f:selectItems>
                                        <p:ajax event="change" update="selectProvinciaClienteParticular"></p:ajax>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="selectProvinciaClienteParticular" value="#{messages.Provincia}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains"  converter="#{provinciaConverter}" id="selectProvinciaClienteParticular" value="#{nuevoClienteBean.nuevoCliente.provincia}" label="#{messages.Provincia}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaProvincia}" itemValue="" />  
                                        <f:selectItems value="#{nuevoClienteBean.nuevoCliente.pais.provinciaList}" var="provincia" itemLabel="#{provincia.descripcion}" itemValue="#{provincia}"></f:selectItems>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="inputLocalidadClienteParticular" value="#{messages.Localidad}"></p:outputLabel>
                                    <p:inputText id="inputLocalidadClienteParticular" value="#{nuevoClienteBean.nuevoCliente.localidad}"></p:inputText>

                                    <p:outputLabel for="inputDireccionClienteParticular" value="#{messages.Direccion}"></p:outputLabel>
                                    <p:inputText id="inputDireccionClienteParticular" value="#{nuevoClienteBean.nuevoCliente.direccion}"></p:inputText>

                                    <p:outputLabel for="inputCodigoPostalClienteParticular" value="#{messages.CodigoPostal}"></p:outputLabel>
                                    <p:inputText id="inputCodigoPostalClienteParticular" value="#{nuevoClienteBean.nuevoCliente.codigoPostal}"></p:inputText>

                                    <p:outputLabel for="selectDescuentoClienteParticular" value="#{messages.Descuento}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains"  converter="#{descuentoClienteConverter}" id="selectDescuentoClienteParticular" value="#{nuevoClienteBean.descuentoCliente}" label="#{messages.Descuento}">
                                        <f:selectItem itemLabel="#{messages.NoDescuento}" itemValue="" />  
                                        <f:selectItems value="#{resourcesBean.descuentosCliente}" var="descuento" itemLabel="#{descuento.descripcion}" itemValue="#{descuento}"></f:selectItems>
                                    </p:selectOneMenu>
                                    
                                    <p:commandButton process="@parent" update="@form :datosCajeroForm:datosCliente" value="#{messages.Guardar}" actionListener="#{nuevoClienteBean.crearCliente()}"></p:commandButton>
                                </p:panelGrid>
                            </p:panel>

                            <p:panel styleClass="noMargin noPadding noBorder" id="panelDatosNuevosClienteOtro">
                                <p:panelGrid  rendered="#{nuevoClienteBean.nuevoCliente.tipoCliente!=null and nuevoClienteBean.nuevoCliente.tipoCliente.idTipoCliente!=2}" columns="2">
                                    <p:outputLabel for="inputNombreClienteOtro" value="#{messages.NombreComercial}"></p:outputLabel>
                                    <p:inputText id="inputNombreClienteOtro" value="#{nuevoClienteBean.nuevoCliente.nombre}"></p:inputText>

                                    <p:outputLabel for="inputRazonSocialClienteOtro" value="#{messages.RazonSocial}"></p:outputLabel>
                                    <p:inputText id="inputRazonSocialClienteOtro" value="#{nuevoClienteBean.nuevoCliente.razonSocial}"></p:inputText>

                                    <p:outputLabel for="inputEmailClienteOtro" value="#{messages.Email}"></p:outputLabel>
                                    <p:inputText id="inputEmailClienteOtro" value="#{nuevoClienteBean.nuevoCliente.email}">
                                        <f:validator binding="#{emailValidator}"></f:validator>
                                        <p:ajax event="change" update=":datosCajeroForm:ticketGrowl" />
                                    </p:inputText>

                                    <p:outputLabel for="inputCIFClienteOtro" value="#{messages.CIF}"></p:outputLabel>
                                    <p:inputText id="inputCIFClienteOtro" value="#{nuevoClienteBean.nuevoCliente.nif}"></p:inputText>

                                    <p:outputLabel for="inputMovilClienteOtro" value="#{messages.Movil}"></p:outputLabel>
                                    <p:inputText id="inputMovilClienteOtro" value="#{nuevoClienteBean.nuevoCliente.movil}"></p:inputText>

                                    <p:outputLabel for="inputTelefonoClienteOtro" value="#{messages.Telefono}"></p:outputLabel>
                                    <p:inputText id="inputTelefonoClienteOtro" value="#{nuevoClienteBean.nuevoCliente.telefono}"></p:inputText>

                                    <p:outputLabel for="selectPaisClienteOtro" value="#{messages.Pais}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{paisConverter}" id="selectPaisClienteOtro" value="#{nuevoClienteBean.nuevoCliente.pais}" label="#{messages.Pais}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaPais}" itemValue="" />  
                                        <f:selectItem itemLabel="#{resourcesBean.spain.descripcion}"  itemValue="#{resourcesBean.spain}" />  
                                        <f:selectItems value="#{resourcesBean.paises}" var="pais" itemLabel="#{pais.descripcion}" itemValue="#{pais}"></f:selectItems>
                                        <p:ajax event="change" update="selectProvinciaClienteParticular"></p:ajax>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="selectProvinciaClienteOtro" value="#{messages.Provincia}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{provinciaConverter}" id="selectProvinciaClienteOtro" value="#{nuevoClienteBean.nuevoCliente.provincia}" label="#{messages.Provincia}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaProvincia}" itemValue="" />  
                                        <f:selectItems value="#{nuevoClienteBean.nuevoCliente.pais.provinciaList}" var="provincia" itemLabel="#{provincia.descripcion}" itemValue="#{provincia}"></f:selectItems>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="inputLocalidadClienteOtro" value="#{messages.Localidad}"></p:outputLabel>
                                    <p:inputText id="inputLocalidadClienteOtro" value="#{nuevoClienteBean.nuevoCliente.localidad}"></p:inputText>

                                    <p:outputLabel for="inputDireccionClienteOtro" value="#{messages.Direccion}"></p:outputLabel>
                                    <p:inputText id="inputDireccionClienteOtro" value="#{nuevoClienteBean.nuevoCliente.direccion}"></p:inputText>

                                    <p:outputLabel for="inputCodigoPostalClienteOtro" value="#{messages.CodigoPostal}"></p:outputLabel>
                                    <p:inputText id="inputCodigoPostalClienteOtro" value="#{nuevoClienteBean.nuevoCliente.codigoPostal}"></p:inputText>

                                    <p:outputLabel for="selectPaisFiscalClienteOtro" value="#{messages.PaisFiscal}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{paisConverter}" id="selectPaisFiscalClienteOtro" value="#{nuevoClienteBean.nuevoCliente.paisFiscal}" label="#{messages.PaisFiscal}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaPais}" itemValue="" />  
                                        <f:selectItems value="#{resourcesBean.paises}" var="pais" itemLabel="#{pais.descripcion}" itemValue="#{pais}"></f:selectItems>
                                        <p:ajax event="change" update="selectProvinciaFiscalClienteOtro"></p:ajax>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="selectProvinciaFiscalClienteOtro" value="#{messages.ProvinciaFiscal}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{provinciaConverter}" id="selectProvinciaFiscalClienteOtro" value="#{nuevoClienteBean.nuevoCliente.provinciaFiscal}" label="#{messages.ProvinciaFiscal}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaProvincia}" itemValue="" />  
                                        <f:selectItems value="#{nuevoClienteBean.nuevoCliente.pais.provinciaList}" var="provincia" itemLabel="#{provincia.descripcion}" itemValue="#{provincia}"></f:selectItems>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="inputLocalidadFiscalClienteOtro" value="#{messages.LocalidadFiscal}"></p:outputLabel>
                                    <p:inputText id="inputLocalidadFiscalClienteOtro" value="#{nuevoClienteBean.nuevoCliente.localidadFiscal}"></p:inputText>

                                    <p:outputLabel for="inputDireccionFiscalClienteOtro" value="#{messages.DireccionFiscal}"></p:outputLabel>
                                    <p:inputText id="inputDireccionFiscalClienteOtro" value="#{nuevoClienteBean.nuevoCliente.direccionFiscal}"></p:inputText>

                                    <p:outputLabel for="inputCodigoPostalFiscalClienteOtro" value="#{messages.CodigoPostalFiscal}"></p:outputLabel>
                                    <p:inputText id="inputCodigoPostalFiscalClienteOtro" value="#{nuevoClienteBean.nuevoCliente.codigoPostalFiscal}"></p:inputText>

                                    <p:outputLabel for="inputDescuentoClienteOtro" value="#{messages.Descuento}"></p:outputLabel>
                                    <p:inputText id="inputDescuentoClienteOtro" value="#{nuevoClienteBean.nuevoCliente.descuento}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </p:inputText>

                                    <p:outputLabel for="inputMultiplicadorClienteOtro" value="#{messages.Multiplicador}"></p:outputLabel>
                                    <p:inputText id="inputMultiplicadorClienteOtro" value="#{nuevoClienteBean.nuevoCliente.multiplicador}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </p:inputText>

                                    <p:outputLabel for="inputRecargoClienteOtro" value="#{messages.Recargo}"></p:outputLabel>
                                    <p:selectBooleanCheckbox id="inputRecargoClienteOtro" value="#{nuevoClienteBean.nuevoCliente.recargo}"></p:selectBooleanCheckbox>

                                    <p:commandButton process="@parent" update=":datosCajeroForm:datosCliente @form" value="#{messages.Guardar}" actionListener="#{nuevoClienteBean.crearCliente()}"></p:commandButton>
                                </p:panelGrid>
                            </p:panel>
                        </p:panel>
                        
                    </p:dialog>   
                    
                    <p:dialog id="dialogoEditarCliente" modal="true" widgetVar="dialogoEditarCliente"  header="#{messages.EditarCliente}">
                        <p:panel styleClass="noMargin noPadding noBorder" id="dialogoEditarClientePanel">
                            <p:panelGrid columns="2" styleClass="noBorder" id="tipoClientePanelGridEditar">
                                <p:outputLabel for="selectTipoClienteEditar" value="#{messages.TipoCliente}"></p:outputLabel>
                                <p:selectOneMenu  converter="#{tipoClienteConverter}" id="selectTipoClienteEditar" value="#{editarClienteBean.clienteElegido.tipoCliente}" label="#{messages.TipoCliente}">
                                    <f:selectItem itemLabel="#{messages.SeleccionaTipoCliente}" itemValue="" />  
                                    <f:selectItems value="#{resourcesBean.tiposCliente}" var="tipoCliente" itemLabel="#{tipoCliente.descripcion}" itemValue="#{tipoCliente}"></f:selectItems>
                                    <p:ajax event="change" update="panelDatosNuevosClienteParticularEditar panelDatosNuevosClienteOtroEditar"></p:ajax>
                                </p:selectOneMenu>
                            </p:panelGrid>
                            <p:panel styleClass="noMargin noPadding noBorder" id="panelDatosNuevosClienteParticularEditar">
                                <p:panelGrid  rendered="#{editarClienteBean.clienteElegido.tipoCliente!=null and editarClienteBean.clienteElegido.tipoCliente.idTipoCliente==2}" columns="2">
                                    <p:outputLabel for="inputNombreClienteParticularEditar" value="#{messages.NombreYApellidos}"></p:outputLabel>
                                    <p:inputText id="inputNombreClienteParticularEditar" value="#{editarClienteBean.clienteElegido.nombre}"></p:inputText>

                                    <p:outputLabel for="inputEmailClienteParticularEditar" value="#{messages.Email}">
                                    </p:outputLabel>
                                    <p:inputText id="inputEmailClienteParticularEditar" value="#{editarClienteBean.clienteElegido.email}">
                                        <f:validator  binding="#{emailValidator}"></f:validator>
                                        <p:ajax event="change" update=":datosCajeroForm:ticketGrowl" />
                                    </p:inputText>

                                    <p:outputLabel for="inputDNIClienteParticularEditar" value="#{messages.DNI}"></p:outputLabel>
                                    <p:inputText id="inputDNIClienteParticularEditar" value="#{editarClienteBean.clienteElegido.nif}"></p:inputText>

                                    <p:outputLabel for="inputMovilClienteParticularEditar" value="#{messages.Movil}"></p:outputLabel>
                                    <p:inputText id="inputMovilClienteParticularEditar" value="#{editarClienteBean.clienteElegido.movil}"></p:inputText>

                                    <p:outputLabel for="inputTelefonoClienteParticularEditar" value="#{messages.Telefono}"></p:outputLabel>
                                    <p:inputText id="inputTelefonoClienteParticularEditar" value="#{editarClienteBean.clienteElegido.telefono}"></p:inputText>

                                    <p:outputLabel for="selectPaisClienteParticularEditar" value="#{messages.Pais}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{paisConverter}" id="selectPaisClienteParticularEditar" value="#{editarClienteBean.clienteElegido.pais}" label="#{messages.Pais}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaPais}" itemValue="" />  
                                        <f:selectItem itemLabel="#{resourcesBean.spain.descripcion}"  itemValue="#{resourcesBean.spain}" />  
                                        <f:selectItems value="#{resourcesBean.paises}" var="pais" itemLabel="#{pais.descripcion}" itemValue="#{pais}"></f:selectItems>
                                        <p:ajax event="change" update="selectProvinciaClienteParticularEditar"></p:ajax>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="selectProvinciaClienteParticularEditar" value="#{messages.Provincia}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains"  converter="#{provinciaConverter}" id="selectProvinciaClienteParticularEditar" value="#{editarClienteBean.clienteElegido.provincia}" label="#{messages.Provincia}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaProvincia}" itemValue="" />  
                                        <f:selectItems value="#{nuevoClienteBean.nuevoCliente.pais.provinciaList}" var="provincia" itemLabel="#{provincia.descripcion}" itemValue="#{provincia}"></f:selectItems>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="inputLocalidadClienteParticularEditar" value="#{messages.Localidad}"></p:outputLabel>
                                    <p:inputText id="inputLocalidadClienteParticularEditar" value="#{editarClienteBean.clienteElegido.localidad}"></p:inputText>

                                    <p:outputLabel for="inputDireccionClienteParticularEditar" value="#{messages.Direccion}"></p:outputLabel>
                                    <p:inputText id="inputDireccionClienteParticularEditar" value="#{editarClienteBean.clienteElegido.direccion}"></p:inputText>

                                    <p:outputLabel for="inputCodigoPostalClienteParticularEditar" value="#{messages.CodigoPostal}"></p:outputLabel>
                                    <p:inputText id="inputCodigoPostalClienteParticularEditar" value="#{editarClienteBean.clienteElegido.codigoPostal}"></p:inputText>

                                    <p:selectOneMenu filter="true" filterMatchMode="contains"  converter="#{descuentoClienteConverter}" id="selectDescuentoClienteParticularEditar" value="#{editarClienteBean.descuentoCliente}" label="#{messages.Descuento}">
                                        <f:selectItem itemLabel="#{messages.NoDescuento}" itemValue="" />  
                                        <f:selectItems value="#{resourcesBean.descuentosCliente}" var="descuento" itemLabel="#{descuento.descripcion}" itemValue="#{descuento}"></f:selectItems>
                                    </p:selectOneMenu>

                                    <p:commandButton process="@parent" update="@form :datosCajeroForm:datosCliente" value="#{messages.Editar}" actionListener="#{editarClienteBean.editarCliente()}"></p:commandButton>
                                </p:panelGrid>
                            </p:panel>

                            <p:panel styleClass="noMargin noPadding noBorder" id="panelDatosNuevosClienteOtroEditar">
                                <p:panelGrid  rendered="#{editarClienteBean.clienteElegido.tipoCliente!=null and editarClienteBean.clienteElegido.tipoCliente.idTipoCliente!=2}" columns="2">
                                    <p:outputLabel for="inputNombreClienteOtroEditar" value="#{messages.NombreComercial}"></p:outputLabel>
                                    <p:inputText id="inputNombreClienteOtroEditar" value="#{editarClienteBean.clienteElegido.nombre}"></p:inputText>

                                    <p:outputLabel for="inputRazonSocialClienteOtroEditar" value="#{messages.RazonSocial}"></p:outputLabel>
                                    <p:inputText id="inputRazonSocialClienteOtroEditar" value="#{editarClienteBean.clienteElegido.razonSocial}"></p:inputText>

                                    <p:outputLabel for="inputEmailClienteOtroEditar" value="#{messages.Email}"></p:outputLabel>
                                    <p:inputText id="inputEmailClienteOtroEditar" value="#{editarClienteBean.clienteElegido.email}">
                                        <f:validator  binding="#{emailValidator}"></f:validator>
                                        <p:ajax event="change" update=":datosCajeroForm:ticketGrowl" />
                                    </p:inputText>

                                    <p:outputLabel for="inputCIFClienteOtroEditar" value="#{messages.CIF}"></p:outputLabel>
                                    <p:inputText id="inputCIFClienteOtroEditar" value="#{editarClienteBean.clienteElegido.nif}"></p:inputText>

                                    <p:outputLabel for="inputMovilClienteOtroEditar" value="#{messages.Movil}"></p:outputLabel>
                                    <p:inputText id="inputMovilClienteOtroEditar" value="#{editarClienteBean.clienteElegido.movil}"></p:inputText>

                                    <p:outputLabel for="inputTelefonoClienteOtroEditar" value="#{messages.Telefono}"></p:outputLabel>
                                    <p:inputText id="inputTelefonoClienteOtroEditar" value="#{editarClienteBean.clienteElegido.telefono}"></p:inputText>

                                    <p:outputLabel for="selectPaisClienteOtroEditar" value="#{messages.Pais}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{paisConverter}" id="selectPaisClienteOtroEditar" value="#{editarClienteBean.clienteElegido.pais}" label="#{messages.Pais}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaPais}" itemValue="" />  
                                        <f:selectItem itemLabel="#{resourcesBean.spain.descripcion}"  itemValue="#{resourcesBean.spain}" />  
                                        <f:selectItems value="#{resourcesBean.paises}" var="pais" itemLabel="#{pais.descripcion}" itemValue="#{pais}"></f:selectItems>
                                        <p:ajax event="change" update="selectProvinciaClienteOtroEditar"></p:ajax>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="selectProvinciaClienteOtroEditar" value="#{messages.Provincia}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{provinciaConverter}" id="selectProvinciaClienteOtroEditar" value="#{editarClienteBean.clienteElegido.provincia}" label="#{messages.Provincia}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaProvincia}" itemValue="" />  
                                        <f:selectItems value="#{editarClienteBean.clienteElegido.pais.provinciaList}" var="provincia" itemLabel="#{provincia.descripcion}" itemValue="#{provincia}"></f:selectItems>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="inputLocalidadClienteOtroEditar" value="#{messages.Localidad}"></p:outputLabel>
                                    <p:inputText id="inputLocalidadClienteOtroEditar" value="#{editarClienteBean.clienteElegido.localidad}"></p:inputText>

                                    <p:outputLabel for="inputDireccionClienteOtroEditar" value="#{messages.Direccion}"></p:outputLabel>
                                    <p:inputText id="inputDireccionClienteOtroEditar" value="#{editarClienteBean.clienteElegido.direccion}"></p:inputText>

                                    <p:outputLabel for="inputCodigoPostalClienteOtroEditar" value="#{messages.CodigoPostal}"></p:outputLabel>
                                    <p:inputText id="inputCodigoPostalClienteOtroEditar" value="#{editarClienteBean.clienteElegido.codigoPostal}"></p:inputText>

                                    <p:outputLabel for="selectPaisFiscalClienteOtroEditar" value="#{messages.PaisFiscal}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{paisConverter}" id="selectPaisFiscalClienteOtroEditar" value="#{editarClienteBean.clienteElegido.paisFiscal}" label="#{messages.PaisFiscal}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaPais}" itemValue="" />  
                                        <f:selectItems value="#{resourcesBean.paises}" var="pais" itemLabel="#{pais.descripcion}" itemValue="#{pais}"></f:selectItems>
                                        <p:ajax event="change" update="selectProvinciaFiscalClienteOtroEditar"></p:ajax>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="selectProvinciaFiscalClienteOtroEditar" value="#{messages.ProvinciaFiscal}"></p:outputLabel>
                                    <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{provinciaConverter}" id="selectProvinciaFiscalClienteOtroEditar" value="#{editarClienteBean.clienteElegido.provinciaFiscal}" label="#{messages.ProvinciaFiscal}">
                                        <f:selectItem itemLabel="#{messages.SeleccionaProvincia}" itemValue="" />  
                                        <f:selectItems value="#{editarClienteBean.clienteElegido.pais.provinciaList}" var="provincia" itemLabel="#{provincia.descripcion}" itemValue="#{provincia}"></f:selectItems>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="inputLocalidadFiscalClienteOtroEditar" value="#{messages.LocalidadFiscal}"></p:outputLabel>
                                    <p:inputText id="inputLocalidadFiscalClienteOtroEditar" value="#{editarClienteBean.clienteElegido.localidadFiscal}"></p:inputText>

                                    <p:outputLabel for="inputDireccionFiscalClienteOtroEditar" value="#{messages.DireccionFiscal}"></p:outputLabel>
                                    <p:inputText id="inputDireccionFiscalClienteOtroEditar" value="#{editarClienteBean.clienteElegido.direccionFiscal}"></p:inputText>

                                    <p:outputLabel for="inputCodigoPostalFiscalClienteOtroEditar" value="#{messages.CodigoPostalFiscal}"></p:outputLabel>
                                    <p:inputText id="inputCodigoPostalFiscalClienteOtroEditar" value="#{editarClienteBean.clienteElegido.codigoPostalFiscal}"></p:inputText>

                                    <p:outputLabel for="inputDescuentoClienteOtroEditar" value="#{messages.Descuento}"></p:outputLabel>
                                    <p:inputText id="inputDescuentoClienteOtroEditar" value="#{editarClienteBean.clienteElegido.descuento}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </p:inputText>

                                    <p:outputLabel for="inputMultiplicadorClienteOtroEditar" value="#{messages.Multiplicador}"></p:outputLabel>
                                    <p:inputText id="inputMultiplicadorClienteOtroEditar" value="#{editarClienteBean.clienteElegido.multiplicador}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </p:inputText>

                                    <p:outputLabel for="inputRecargoClienteOtroEditar" value="#{messages.Recargo}"></p:outputLabel>
                                    <p:selectBooleanCheckbox id="inputRecargoClienteOtroEditar" value="#{editarClienteBean.clienteElegido.recargo}"></p:selectBooleanCheckbox>

                                    <p:commandButton process="@parent" update=":datosCajeroForm:datosCliente @form" value="#{messages.Editar}" actionListener="#{editarClienteBean.editarCliente()}"></p:commandButton>
                                </p:panelGrid>
                            </p:panel>
                        </p:panel>
                    </p:dialog>
                    
                    <p:dialog id="dialogoFiltrarProducto" modal="true" widgetVar="dialogoFiltrarProducto"  header="#{messages.FiltrarProducto}">
                        <h:panelGrid id="panelDialogoFiltrado" columns="2">
                            <p:outputLabel for="filtrarD" value="#{messages.D}"></p:outputLabel>
                            <p:selectOneMenu  converter="#{dConverter}" id="filtrarD" value="#{nuevoTicketBean.filtradoDataModel.DFiltrado}" label="#{messages.D}">
                                <f:selectItem itemLabel="#{messages.SeleccionaD}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ds}" var="d" itemLabel="#{d.descripcion}" itemValue="#{d}"></f:selectItems>
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarC" value="#{messages.C}"></p:outputLabel>
                            <p:selectOneMenu converter="#{cConverter}" id="filtrarC" value="#{nuevoTicketBean.filtradoDataModel.CFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaC}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.cs}" var="c" itemLabel="#{c.descripcion}" itemValue="#{c}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarS" value="#{messages.S}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sConverter}" id="filtrarS" value="#{nuevoTicketBean.filtradoDataModel.SFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaS}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ss}" var="s" itemLabel="#{s.descripcion}" itemValue="#{s}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarTemporada" value="#{messages.Temporada}"></p:outputLabel>
                            <p:selectOneMenu converter="#{temporadaConverter}" id="filtrarTemporada" value="#{nuevoTicketBean.filtradoDataModel.temporadaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaTemporada}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.temporadas}" var="temporada" itemLabel="#{temporada.descripcion}" itemValue="#{temporada}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSerieTallaje" value="#{messages.SerieTallaje}"></p:outputLabel>
                            <p:selectOneMenu converter="#{serieTallajeConverter}" id="filtrarSerieTallaje" value="#{nuevoTicketBean.filtradoDataModel.serieTallajeFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSerieTallaje}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.seriesTallaje}" var="serieTallaje" itemLabel="#{serieTallaje.descripcion}" itemValue="#{serieTallaje}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSexo" value="#{messages.Sexo}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sexoConverter}" id="filtrarSexo" value="#{nuevoTicketBean.filtradoDataModel.sexoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSexo}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.sexos}" var="sexo" itemLabel="#{sexo.descripcion}" itemValue="#{sexo}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarProveedor" value="#{messages.Proveedor}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarProveedor" value="#{nuevoTicketBean.filtradoDataModel.proveedorFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaProveedor}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="proveedor" itemLabel="#{proveedor.nombreComercial}" itemValue="#{proveedor}"/>  
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="filtrarFabricanteTela" value="#{messages.FabricanteTela}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarFabricanteTela" value="#{nuevoTicketBean.filtradoDataModel.fabricanteTelaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaFabricanteTela}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="fabricanteTela" itemLabel="#{fabricanteTela.nombreComercial}" itemValue="#{fabricanteTela}"/>  
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="filtrarActivo" value="#{messages.Activo}"></p:outputLabel>
                            <p:selectOneMenu id="filtrarActivo" value="#{nuevoTicketBean.filtradoDataModel.activoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.Indiferente}" itemValue="" />  
                                <f:selectItem itemLabel="#{messages.Activo}" itemValue="#{true}" />
                                <f:selectItem itemLabel="#{messages.Inactivo}" itemValue="#{false}" />
                            </p:selectOneMenu>
                           
                        </h:panelGrid>
                        <p:commandButton process="@parent" update=":datosCajeroForm:ticketGrowl :productosTicketFormAdd:datosProductosAdd" value="#{messages.Filtrar}" actionListener="#{nuevoTicketBean.filtrar()}"></p:commandButton>
                    </p:dialog>
                    
                    <p:dialog id="dialogoErrorStock" modal="true" widgetVar="dialogoErrorStock"  header="#{messages.FiltrarProducto}">
                        <h:outputText value="#{messages.ConfirmaStockVentaDialogo}"></h:outputText>
                        <p:commandButton process="@this" value="#{messages.Aceptar}" onclick="dialogoErrorStock.hide();"></p:commandButton>
                    </p:dialog>
                </h:form>
            </ui:define>
            
            <ui:define name="content">
                
                <p:panel id="leftColumnPanel" styleClass="leftColumnPanel noMargin noPadding noBorder">
                    <h:form id="datosCajeroForm">
                        <p:remoteCommand process="@this" name="setType" autoRun="true" update=":datosCajeroForm:datosCajeroFormPanel :pistolaForm:panelCodigoBarras" actionListener="#{nuevoTicketBean.tipoTicketReserva()}"></p:remoteCommand>
                        <p:growl autoUpdate="true" life="10000" id="ticketGrowl"></p:growl>
                        <p:panel styleClass="noMargin noPadding noBorder" id="datosCajeroFormPanel">
                            <f:facet name="header">#{messages.DatosVenta}</f:facet>
                            <p:panelGrid columns="2" styleClass="noMargin noPadding noBorder" id="datosVenta">
                                <p:outputLabel for="selectCaja" value="#{messages.Caja}"></p:outputLabel>
                                <p:selectOneMenu id="selectCaja" converter="#{cajaConverter}" value="#{nuevoTicketBean.ticket.caja}" required="true">
                                    <f:selectItem itemLabel="#{messages.SeleccionaCaja}" itemValue="" />  
                                    <f:selectItems value="#{nuevoTicketBean.cajasUsuario}" var="caja" itemLabel="#{caja.descripcion}" itemValue="#{caja}"></f:selectItems>
                                    <p:ajax event="change" update="selectCajero datosCajeroForm:datosCajeroFormPanel" listener="#{nuevoTicketBean.onCajaElegida()}"></p:ajax>
                                </p:selectOneMenu>
                                <p:outputLabel for="selectCajero" value="#{messages.Cajero}"></p:outputLabel>
                                <p:selectOneMenu filter="true" filterMatchMode="contains" converter="#{UsuarioConverter}" id="selectCajero" disabled="#{nuevoTicketBean.ticket.caja==null}" value="#{nuevoTicketBean.ticket.usuario}" required="true">
                                    <f:selectItem itemLabel="#{messages.SeleccionaCajero}" itemValue="" />  
                                    <f:selectItems value="#{nuevoTicketBean.ticket.caja.tienda.usuarioTiendaList}" var="usuarioTienda" itemLabel="#{usuarioTienda.usuario.nombreUsuario}" itemValue="#{usuarioTienda.usuario}"></f:selectItems>
                                    <p:ajax event="change" update="datosCajeroForm:datosCajeroFormPanel" listener="#{nuevoTicketBean.onCajaElegida()}"></p:ajax>
                                </p:selectOneMenu>
                            </p:panelGrid>
                            <p:panel id="datosCliente">
                                <f:facet name="header">#{messages.DatosCliente}</f:facet>
                                <p:panelGrid columns="2">
                                    <p:outputLabel for="busquedaIdentificacion" value="#{messages.BusquedaPorIdentificacion}"></p:outputLabel>
                                    <p:selectOneMenu value="#{nuevoTicketBean.ticket.cliente}" id="busquedaIdentificacion" converter="#{clienteConverter}" effect="fade" var="c" filter="true" filterMatchMode="contains">  
                                        <f:selectItem itemLabel="#{messages.SeleccionaCliente}" itemValue="" />  
                                        <f:selectItems value="#{resourcesBean.clientes}" var="cliente" itemLabel="#{cliente.nif}" itemValue="#{cliente}"/>  
                                        <p:column>  
                                            <h:outputText value="#{c.nif} - #{c.nombre}"></h:outputText> 
                                        </p:column> 
                                        <p:ajax event="change" update=":datosCajeroForm:panelGridPresentarCliente"></p:ajax>
                                    </p:selectOneMenu>

                                    <p:outputLabel for="busquedaNombre" value="#{messages.BusquedaPorNombre}"></p:outputLabel>
                                    <p:selectOneMenu value="#{nuevoTicketBean.ticket.cliente}" id="busquedaNombre" converter="#{clienteConverter}" effect="fade" var="c" filter="true" filterMatchMode="contains">  
                                        <f:selectItem itemLabel="#{messages.SeleccionaCliente}" itemValue="" />  
                                        <f:selectItems value="#{resourcesBean.clientes}" var="cliente" itemLabel="#{cliente.nombre}" itemValue="#{cliente}"/>  
                                        <p:column>  
                                            <h:outputText value="#{c.nif} - #{c.nombre}"></h:outputText> 
                                        </p:column> 
                                        <p:ajax event="change" update=":datosCajeroForm:panelGridPresentarCliente"></p:ajax>
                                    </p:selectOneMenu>
                                    <p:outputLabel for="nuevoClienteButton" value="#{messages.NuevoCliente}"></p:outputLabel>
                                    <p:commandButton id="nuevoClienteButton" process="@this" oncomplete="dialogoNuevoCliente.show();" update=":dialogoForm:dialogoNuevoCliente" value="#{messages.NuevoCliente}"></p:commandButton>
                                    <p:outputLabel for="noQuiereRegistrar" value="#{messages.NoQuiereRegistrar}"></p:outputLabel>
                                    <p:selectBooleanCheckbox id="noQuiereRegistrar" value="#{nuevoTicketBean.noQuiereRegistar}">
                                        <p:ajax update=":datosCajeroForm:panelGridPresentarCliente"></p:ajax>
                                    </p:selectBooleanCheckbox>                        
                                </p:panelGrid>

                                <p:panelGrid columns="4" id="panelGridPresentarCliente">
                                    <p:outputLabel for="presentarNombre" value="#{messages.Nombre}"></p:outputLabel>
                                    <h:outputText id="presentarNombre" value="#{nuevoTicketBean.ticket.cliente.nombre}"></h:outputText>
                                    <p:outputLabel for="presentarDNI" value="#{messages.NIF}"></p:outputLabel>
                                    <h:outputText id="presentarDNI" value="#{nuevoTicketBean.ticket.cliente.nif}"></h:outputText>
                                    <p:outputLabel for="presentarEmail" value="#{messages.Email}"></p:outputLabel>
                                    <h:outputText id="presentarEmail" value="#{nuevoTicketBean.ticket.cliente.email}"></h:outputText>
                                    <p:outputLabel for="presentarMovil" value="#{messages.Movil}"></p:outputLabel>
                                    <h:outputText id="presentarMovil" value="#{nuevoTicketBean.ticket.cliente.movil}"></h:outputText>
                                    <p:outputLabel for="presentarDescuento" value="#{messages.Descuento}"></p:outputLabel>
                                    <h:outputText id="presentarDescuento" value="#{nuevoTicketBean.ticket.cliente.descuento}"></h:outputText>
                                </p:panelGrid>

                            </p:panel>
                        </p:panel>
                    </h:form>
                    
                    <h:form id="cobroForm">
                        <p:panel id="panelCobro">
                            <f:facet name="header">#{messages.TotalAPagar}: #{nuevoTicketBean.totalAPagar} #{messages.Restante}: #{nuevoTicketBean.restante}</f:facet>
                            <p:panel id="panelCobroEfectivo">
                                <f:facet name="header">#{messages.Efectivo}</f:facet>
                                <p:panelGrid columns="2">
                                    <p:outputLabel for="inputCobroEfectivo" value="#{messages.CantidadEfectivo}"></p:outputLabel>
                                    <p:panelGrid styleClass="noMargin noPadding" columns="2">
                                        <p:inputText disabled="#{nuevoTicketBean.ticket.lineaTicketList==null or nuevoTicketBean.ticket.lineaTicketList.isEmpty()}" id="inputCobroEfectivo" value="#{nuevoTicketBean.efectivoTicketFormaPago.cantidad}">
                                            <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                            <p:ajax event="change" update="panelCobro"></p:ajax>
                                        </p:inputText>
                                        <p:commandButton process="@this" update="panelCobro" disabled="#{nuevoTicketBean.ticket.lineaTicketList==null or nuevoTicketBean.ticket.lineaTicketList.isEmpty()}" value="#{messages.CobrarRestante}" actionListener="#{nuevoTicketBean.cobrarRestante()}"></p:commandButton>
                                    </p:panelGrid>

                                    <p:outputLabel for="inputRecibeEfectivo" value="#{messages.CantidadRecibe}"></p:outputLabel>
                                    <p:inputText disabled="#{nuevoTicketBean.efectivoTicketFormaPago.cantidad==null}" id="inputRecibeEfectivo" value="#{nuevoTicketBean.efectivoRecibe}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                        <p:ajax event="change" update="panelCobro"></p:ajax>
                                    </p:inputText>
                                    <p:outputLabel value="#{messages.CantidadADevolver}: " for="outputCantidadDevolver"></p:outputLabel>
                                    <h:outputText rendered="#{nuevoTicketBean.efectivoTicketFormaPago.cantidad!=null and nuevoTicketBean.efectivoRecibe!=null}" id="outputCantidadDevolver" value="#{nuevoTicketBean.efectivoRecibe.subtract(nuevoTicketBean.efectivoTicketFormaPago.cantidad)}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </h:outputText>
                                </p:panelGrid>
                            </p:panel>
                            <p:panel id="panelCobroTarjetas">
                                <f:facet name="header">#{messages.Tarjeta}</f:facet>
                                <p:panelGrid columns="4">
                                    <p:graphicImage library="images" style="width:50px;" name="Visa2008.jpg"></p:graphicImage>
                                    <p:graphicImage library="images" style="width:50px;" name="mastercard_logo.jpg"></p:graphicImage>
                                    <p:graphicImage library="images" style="width:50px;" name="maestro.gif"></p:graphicImage>
                                    <p:graphicImage library="images" style="width:50px;" name="logo_amex_us-11.jpg"></p:graphicImage>
                                    <p:inputText style="width:50px;" disabled="#{nuevoTicketBean.ticket.lineaTicketList==null or nuevoTicketBean.ticket.lineaTicketList.isEmpty()}" id="inputCobroVisa" value="#{nuevoTicketBean.visaTicketFormaPago.cantidad}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                        <p:ajax event="change" update="panelCobro"></p:ajax>
                                    </p:inputText>
                                    <p:inputText style="width:50px;" disabled="#{nuevoTicketBean.ticket.lineaTicketList==null or nuevoTicketBean.ticket.lineaTicketList.isEmpty()}" id="inputCobroMastercard" value="#{nuevoTicketBean.mastercardTicketFormaPago.cantidad}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                        <p:ajax event="change" update="panelCobro"></p:ajax>
                                    </p:inputText>
                                    <p:inputText style="width:50px;" disabled="#{nuevoTicketBean.ticket.lineaTicketList==null or nuevoTicketBean.ticket.lineaTicketList.isEmpty()}" id="inputCobroMaestro" value="#{nuevoTicketBean.maestroTicketFormaPago.cantidad}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                        <p:ajax event="change" update="panelCobro"></p:ajax>
                                    </p:inputText>
                                    <p:inputText style="width:50px;" disabled="#{nuevoTicketBean.ticket.lineaTicketList==null or nuevoTicketBean.ticket.lineaTicketList.isEmpty()}" id="inputCobroAmex" value="#{nuevoTicketBean.amexTicketFormaPago.cantidad}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                        <p:ajax event="change" update="panelCobro"></p:ajax>
                                    </p:inputText>
                                </p:panelGrid>
                            </p:panel>
                            <p:commandButton rendered="#{!nuevoTicketBean.hayProblemasDeStock}" process="@this" value="#{messages.TerminarVenta}" action="#{nuevoTicketBean.crearReserva()}" update=":productosTicketForm:datosProductos @parent" disabled="#{!nuevoTicketBean.puedeTerminarReserva}"></p:commandButton>
                            <p:commandButton rendered="#{nuevoTicketBean.hayProblemasDeStock}" process="@this" value="#{messages.ConfirmarYTerminar}" action="#{nuevoTicketBean.confirmarTicket()}"></p:commandButton>
                        </p:panel>
                    </h:form>
                </p:panel>
                
                
                <p:panel id="rightColumnPanel" styleClass="rightColumnPanel noMargin noPadding noBorder">
                    <h:form id="pistolaForm">
                        <p:panel id="panelCodigoBarras" styleClass="noBorder" widgetVar="panelCodigoBarras">
                            <f:facet name="header">#{messages.Productos}</f:facet>
                            <p:focus for="codigoBarrasInput"></p:focus>
                            <p:outputLabel for="codigoBarrasInput" value="#{messages.CodigoBarras}"></p:outputLabel>
                            <p:inputText disabled="#{nuevoTicketBean.almacenesVentasAsociados==null}" id="codigoBarrasInput" value="#{nuevoTicketBean.codigoBarras}"></p:inputText>
                            <p:commandButton disabled="#{nuevoTicketBean.almacenesVentasAsociados==null}" value="#{messages.Add}"  update=":pistolaForm:panelCodigoBarras :datosCajeroForm:ticketGrowl :productosTicketForm:datosProductos :cobroForm:panelCobro" actionListener="#{nuevoTicketBean.onCodigoBarrasCambiado()}"></p:commandButton>
                        </p:panel>
                    </h:form>
                    
                    <h:form id="productosTicketFormAdd">
                        <p:panel style="display:none;" id="datosProductosAdd">
                            <f:facet name="header">#{messages.ElegirNuevosProductos}</f:facet>
                            <p:commandButton process="@this" value="#{messages.AddProductos}" oncomplete="dialogoFiltrarProducto.show();" update=":dialogoForm:dialogoFiltrarProducto"></p:commandButton>
                            <p:dataTable rendered="#{nuevoTicketBean.lineasTicketAdd!=null and !nuevoTicketBean.lineasTicketAdd.isEmpty()}" var="lineaTicket" value="#{nuevoTicketBean.lineasTicketAdd}">
                                <p:column sortBy="#{lineaTicket.productoTalla.producto.descripcion}" filterBy="#{lineaTicket.productoTalla.producto.descripcion}" filterMatchMode="contains" headerText="#{messages.Producto}">
                                    <h:outputText value="#{lineaTicket.productoTalla.producto.descripcion}"></h:outputText>
                                </p:column>
                                <p:column sortBy="#{lineaTicket.productoTalla.producto.color}" filterBy="#{lineaTicket.productoTalla.producto.color}" filterMatchMode="contains" headerText="#{messages.Color}">
                                    <h:outputText value="#{lineaTicket.productoTalla.producto.color}"></h:outputText>
                                </p:column>
                                <p:column sortBy="#{lineaTicket.productoTalla.talla.descripcion}" filterBy="#{lineaTicket.productoTalla.talla.descripcion}" filterMatchMode="contains" headerText="#{messages.Talla}">
                                    <h:outputText value="#{lineaTicket.productoTalla.talla.descripcion}"></h:outputText>
                                </p:column>
                                <p:column headerText="#{messages.Cantidad}">
                                    <p:inputText styleClass="pedidoInput" value="#{lineaTicket.cantidad}">
                                        <p:ajax update=":productosTicketFormAdd:datosProductosAdd :datosCajeroForm:ticketGrowl" event="change" process="productosTicketFormAdd:datosProductosAdd" listener="#{nuevoTicketBean.onLineaTicketCambiada(lineaTicket)}"></p:ajax>
                                    </p:inputText>
                                </p:column>
                            </p:dataTable>
                            <p:commandButton process="@parent" update="@parent datosProductos" rendered="#{nuevoTicketBean.lineasTicketAdd!=null and !nuevoTicketBean.lineasTicketAdd.isEmpty()}" value="#{messages.Add}" actionListener="#{nuevoTicketBean.guardarLineasAdd()}"></p:commandButton>
                            <p:commandButton process="@parent" update="@parent datosProductos" rendered="#{nuevoTicketBean.lineasTicketAdd!=null and !nuevoTicketBean.lineasTicketAdd.isEmpty()}" value="#{messages.Cancelar}" actionListener="#{nuevoTicketBean.eliminarLineasAdd()}"></p:commandButton>
                        </p:panel>
                    </h:form>
                    
                    <h:form id="productosTicketForm">
                        <p:panel id="datosProductos">
                            <f:facet name="header">#{messages.ProductosElegidos}</f:facet>
                            <p:dataTable emptyMessage="#{messages.NoProductosVentaElegidos}" var="lineaTicket" value="#{nuevoTicketBean.ticket.lineaTicketList}">
                                <p:column sortBy="#{lineaTicket.productoTalla.producto.descripcion}" filterBy="#{lineaTicket.productoTalla.producto.descripcion}" filterMatchMode="contains" headerText="#{messages.Producto}">
                                    <h:outputText value="#{lineaTicket.productoTalla.producto.descripcion}"></h:outputText>
                                </p:column>
                                <p:column sortBy="#{lineaTicket.productoTalla.producto.color}" filterBy="#{lineaTicket.productoTalla.producto.color}" filterMatchMode="contains" headerText="#{messages.Color}">
                                    <h:outputText value="#{lineaTicket.productoTalla.producto.color}"></h:outputText>
                                </p:column>
                                <p:column sortBy="#{lineaTicket.productoTalla.talla.descripcion}" filterBy="#{lineaTicket.productoTalla.talla.descripcion}" filterMatchMode="contains" headerText="#{messages.Talla}">
                                    <h:outputText value="#{lineaTicket.productoTalla.talla.descripcion}"></h:outputText>
                                </p:column>
                                <p:column headerText="#{messages.Pvp}">
                                    <h:outputText value="#{lineaTicket.total}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </h:outputText>
                                </p:column>
                                <p:column headerText="#{messages.Cantidad}">
                                    <p:inputText styleClass="pedidoInput" value="#{lineaTicket.cantidad}">
                                        <p:ajax update=":productosTicketForm:datosProductos :cobroForm:panelCobro :datosCajeroForm:ticketGrowl" event="change" process=":productosTicketForm:datosProductos" listener="#{nuevoTicketBean.onLineaTicketCambiada(lineaTicket)}"></p:ajax>
                                    </p:inputText>
                                </p:column>
                                <p:column headerText="#{messages.Descuento}">
                                    <p:inputText styleClass="pedidoInput" value="#{lineaTicket.descuento}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                        <p:ajax update=":datosCajeroForm:ticketGrowl :cobroForm:panelCobro" event="change" process=":productosTicketForm:datosProductos"></p:ajax>
                                    </p:inputText>
                                </p:column>
                                <p:column headerText="#{messages.Iva}">
                                    <h:outputText value="#{lineaTicket.iva}">
                                        <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    </h:outputText>
                                </p:column>
                                <p:column rendered="#{lineaTicket.almacen!=null}" headerText="#{messages.Almacen}">
                                    <p:selectOneMenu value="#{lineaTicket.almacen}" id="selectAlmacenLineaTicket" converter="#{almacenConverter}" effect="fade">  
                                        <f:selectItem itemLabel="#{messages.SeleccionaAlmacen}" itemValue="" />  
                                        <f:selectItems value="#{nuevoTicketBean.almacenesVentasAsociados}" var="almacen" itemLabel="#{almacen.descripcion}" itemValue="#{almacen}"/>  
                                    </p:selectOneMenu>
                                </p:column>
                            </p:dataTable>
                        </p:panel>                    
                    </h:form>
                </p:panel>                
            </ui:define>

        </ui:composition>

    </body>
</html>
